package com.fly.service;

import com.fly.bean.Pole;
import com.fly.util.Page;
import com.fly.vo.AndPageVO;

import java.util.List;

/**
 * @Auther: Orchid
 * @Date: 2019/11/27 20:15
 * @Description:
 */
public interface PoleServiceO {

    /**
     * 分页查询所有
     * @param page page实体
     * @return 返回查询数据
     */
    public List<Pole> queryPoleByPage(Page page);

    /**
     * 查询总数
     * @return 总数
     */
    public Integer queryAllPoleCount();

    /**
     * 判断是否存在这个poleNo
     * @return 返回是否存在
     */
    public boolean queryPoleNoIsExit(Pole pole);


    /**
     * 根据线路id和状态active查询杆塔信息
     * @param andPageVO 查询参数实体
     * @return 结果集合
     */
    public List<Pole> queryPolePageByCirIdAndActivate(AndPageVO andPageVO);

    /**
     * 添加杆塔数据
     * @return 结果条数
     */
    public Integer addPole(Pole pole);

//    /**
//     * 修改杆塔状态
//     * @param pole 杆塔信息实体
//     * @return 结果条数
//     */
//    public Integer updateActive(Pole pole);

    /**
     * 根据id删除pole
     * @param poleId 杠杆id
     * @return 返回成功条数
     */
    public Integer deleteByPoleId(Integer poleId);

    /**
     * 根据id修改杆塔信息
     * @return 结果条数
     */
    public Integer updatePoleById(Pole pole);

    /**
     * 根据poleId查询杆塔状态配置id
     * @param poleId
     * @return
     */
    public Integer querySysIdByPoleId(Integer poleId);

    /**
     * 根据id查询具体杆塔信息
     * @param poleId 杆塔id
     * @return 杆塔信息
     */
    public Pole queryPoleByPoleId(Integer poleId);

    /**
     * 根据杆塔id查询杆塔状态是否是停用
     * @param poleNo 杆塔No
     * @return
     */
    public Boolean queryCountByPoleActiveDisable(String poleNo);

    /**
     * 查询杆塔是否输入某条线路
     * @param pole 杆塔信息
     * @return
     */
    public Boolean queryPoleIsCir(Pole pole);

    /**
     * 根据杆塔编号和id判断编号是否还有其他的杆塔使用
     * @param pole 杆塔信息
     * @return
     */
    public Boolean queryPoleNoOtherIsExit(Pole pole);

    /**
     * 查询杆塔是否有正在修改记录
     * @param poleId 杆塔id
     * @return
     */
    public Boolean queryPoleIsDamage(Integer poleId);

    /**
     * 判断所属线路是否存在
     * @param poleId
     * @return
     */
    public Integer queryPoleCirIsNull(Integer poleId);

}
